package com.mask.mr;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

/**
 * ClassName WordMapper
 * Create by hx
 * Date 2021/9/22 2:09 下午
 *
 * KEYIN: 原始数据经过转换后的key1 -- 字符串
 * VALUEIN：原始数据经过转换后的value1 -- 整数
 * KEYOUT：经过Map程序处理后的数据key2 -- 字符串
 * VALUEOUT：经过map处理后的数据value2 -- 整数
 */

public class WordMapper extends Mapper<LongWritable,Text,Text,IntWritable> {
    // alt + /: 出现方法的提示
    @Override
    protected void map(LongWritable key, Text value, Context context)
            throws IOException, InterruptedException {
        //1. 获取文本中的一行数据，将其转换成java对应的字符串
        // Sun moon and you (Text) -->(String)
        String line = value.toString();
        // 2. 分割字符串 Sun, moon, and, you
        String[] words = line.split("\\|");
        // 3. 生成key2-vlaue2，然后输出<Sun,1>;<moon,1>;<and,1>;<you,1>
        for(String word : words) {
            // 需要将String -->Text, int -->IntWritable
            context.write(new Text(word), new IntWritable(1));
        }
    }
}
